Mitigation of on-chip supply voltage noise by monitoring slope of supply voltage based on time-based sensors

ABSTRACT

A voltage droop mitigation system, that includes a first processor core that executes computer executable components stored in a memory. A time-based sensor component generates digital data representing voltage values associated with a power supply. A filtering component digitally conditions the generated digital data, and an analysis component analyzes the conditioned data and determines slope of the power supply voltage and employs counters to determine rate of data change over time; and if the slope is negative and exceeds a first pre-determined value for a pre-determined time period. The system implements one or more voltage droop-reduction techniques at the first processor core; and the first processor core transmits at least one of the following types of information: its voltage value, slope information or decision to apply droop reduction to one or more other cores.

This invention was made with Government support under Contract No.:H98230-12-C-0325 awarded by National Security Agency. The Government hascertain rights in this invention.

BACKGROUND

The subject disclosure relates to power supplies, and more specifically,to mitigation of on-chip supply voltage by monitoring slope of supplyvoltage based on time-based sensors.

SUMMARY

The following presents a summary to provide a basic understanding of oneor more embodiments of the invention. This summary is not intended toidentify key or critical elements, or delineate any scope of theparticular embodiments or any scope of the claims. Its sole purpose isto present concepts in a simplified form as a prelude to the moredetailed description that is presented later. In one or more embodimentsdescribed herein, devices, systems, computer-implemented methods,apparatus and/or computer program products that facilitate distributedgraph databases for streaming data insertion and queries are described.

In an implementation, a computer-implemented method for reducing on-chippower-supply noise, comprises: digitally determining slope of a supplyvoltage at known voltage values or approximated voltage values; and ifthe slope negatively exceeds a first pre-determined value, apply droopreduction to mitigate effects of voltage drop.

In another implementation, a voltage droop mitigation system, comprises:a processor that executes computer executable components stored in amemory; a time-based sensor component that generates digital datarepresenting voltage values associated with a power supply; a filteringcomponent that digitally conditions the generated digital data; and ananalysis component that analyzes the conditioned data and determinesslope of the power supply voltage and employs counters to determine rateof data change over time; and if the slope is negative and negativelyexceeds a first pre-determined value for a pre-determined time period,the system implements one or more voltage droop-reduction techniques.

In another implementation, a computer-implemented method for reducingon-chip power-supply noise, comprises: monitoring slope of a local coresupply voltage; monitoring slope of a neighboring core supply voltage;if the slope at the local core supply voltage negatively exceeds apre-determined value, apply droop reduction to the local core tomitigate effects of voltage drop; and the local core transmits at leastone of the following types of information: its voltage value, slopeinformation or decision to apply droop reduction to one or more othercores.

In yet another implementation, a voltage droop mitigation system,comprises: a first processor core that executes computer executablecomponents stored in a memory; a time-based sensor component thatgenerates digital data representing voltage values associated with apower supply; a filtering component that digitally conditions thegenerated digital data; an analysis component that analyzes theconditioned data and determines slope of the power supply voltage andemploys counters to determine rate of data change over time; and if theslope is negative and negatively exceeds a first pre-determined valuefor a pre-determined time period, the system implements one or morevoltage droop-reduction techniques at the first processor core; andwherein the first processor core transmits at least one of the followingtypes of information: its voltage value, slope information or decisionto apply droop reduction to one or more other cores.

In some embodiments, elements described in connection with thecomputer-implemented method(s) can be embodied in different forms suchas a system, a computer program product, or another form.

DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates traditional droop detection and mitigation.

FIG. 2 illustrates droop detection and mitigation in accordance with oneor more embodiments described herein.

FIG. 3 illustrates a droop mitigation system in accordance with one ormore embodiments described herein.

FIG. 4 illustrates an alternative embodiment of a droop mitigationsystem in accordance with one or more embodiments described herein.

FIG. 5 illustrates an example voltage and slope analysis in accordancewith one or more embodiments described herein.

FIG. 6 illustrates an example, non-limiting method in accordance withone or more embodiments described herein.

FIG. 7 illustrates an example, non-limiting method in accordance withone or more embodiments described herein.

FIG. 8 illustrates an example, non-limiting method in accordance withone or more embodiments described herein.

FIG. 9 illustrates an example, non-limiting method in accordance withone or more embodiments described herein.

FIG. 10 illustrates an example, multi-core distributed droop mitigationarchitecture in accordance with one or more embodiments describedherein.

FIG. 11 illustrates an example, non-limiting method in accordance withone or more embodiments described herein.

FIG. 12 illustrates an example, non-limiting method in accordance withone or more embodiments described herein.

FIG. 13 illustrates a block diagram of an example, non-limitingoperating environment in which one or more embodiments described hereincan be facilitated.

DETAILED DESCRIPTION

The following detailed description is merely illustrative and is notintended to limit embodiments and/or application or uses of embodiments.Furthermore, there is no intention to be bound by any expressed orimplied information presented in the preceding Background or Summarysections, or in the Detailed Description section.

One or more embodiments are now described with reference to thedrawings, wherein like referenced numerals are used to refer to likeelements throughout. In the following description, for purposes ofexplanation, numerous specific details are set forth in order to providea more thorough understanding of the one or more embodiments. It isevident, however, in various cases, that the one or more embodiments canbe practiced without these specific details.

When the supply current drawn by a processor suddenly increases, a largedrop is created on the voltage power supply. If the power supplydecreases below a certain point, the processor's functionality can becompromised. Traditionally, a large margin is added to the power supplyvoltage value, so that even when the drop happens the voltage will neverreach that point. Techniques are employed to lessen effect of such drop.These traditional techniques monitor supply voltage and employ somecounter-measure (e.g., reduce clock speed, throttle activity . . . )when the power supply is detected to be below a threshold value. Thesecounter-measures prevent the drop from reaching its maximum value.However, the threshold value is larger than the failure value, since thecounter-measures cannot be applied infinitely fast, consequently evenwhen they are applied the supply voltage still decreases some more.

The present innovation(s) reduces on-chip power-supply noise when thereis a large and sudden increase in supply current. In other words,potential onset of a voltage drop is estimated early, so thatcounter-measures can be applied ahead of time. This results in reductionin power consumption in the processor chip because an applied voltagemargin is reduced. More specifically, the innovation(s) provides amethod (and system) for mitigating on-chip supply voltage noise bymonitoring slope of the supply voltage using time-based sensors. Whenthe slope of the power supply negatively exceeds a threshold, a supplydroop is detected. Once droop is detected, one or more voltage-noisereduction techniques are pro-actively applied. In contrast totraditional schemes, instead of applying droop-reduction methods afterthe power supply is detected to drop below a certain threshold, thesubject innovation monitors rate of decrease of supply voltage; and whenthe rate of decrease of the supply voltage is large enough,droop-reduction technique(s) are applied (even if the value of thevoltage itself still has not decreased below traditional triggerlevels). The innovation(s) facilitates reduction in power consumption ofthe processor chip, by reducing applied voltage margin.

FIG. 1 illustrates standard droop detection and mitigation. A supplydroop is detected by comparing a power supply voltage against one ormultiple threshold voltages (e.g., T1, T2, . . . )—these thresholds cannot be arbitrarily high, or set higher than a minimum allowed operatingvoltage of the processor. Consequently, a supply droop is detectedsignificantly late in most cases (e.g., at P2 rather than P1); and asignificant portion of the droop is ignored. Accordingly, a largevoltage margin is required to be added for protection against the partof the droop that is not mitigated.

FIG. 2 illustrates aspects of the subject innovation(s) in connectionwith droop detection and mitigation. Slope of a supply voltage ismonitored, and one or more droop-reduction techniques are implemented ifthe slope negatively exceeds a particular value. Instead of employingvoltage comparators with a few voltage thresholds as is typically done,supply voltage is monitored using a time-based sensor (e.g., such asSkitter or Critical-Path-Monitor). At respective cycles, a significantnumber of bits representing the supply voltage are analyzed. Slope ofthe supply voltage is determined through digital signal processing (DSP)performed on these bits. If the slope is calculated as negative withrespect to a particular threshold, a droop is indicated on the supplyvoltage, even when the actual supply voltage is not below its minimumallowed value. This is because (typically) a large and fast voltagedroop is coincident with a large voltage slope.

As evinced from FIG. 2, the earliest point (P1) of droop detectionthrough slope comparison occurs substantially prior to the point (P2) ofdroop detection through standard analog voltage comparison of onlyhigh-frequency parts of the supply noise. Such analog schemes can besensitive to V_(dd) slope, and employed as a droop or overshoot sensor.However, due to the analog nature, the standard schemes for droopdetection are relatively static or reactionary and consequently have asignificant lag in detection as a result of not measuring the rate ofV_(dd) voltage change between two specified levels as compared to thesubject innovations described and claimed herein. In the subjectinnovations, multiple voltage levels are known or approximated, as wellas the time it takes transitioning across voltage levels, which is muchmore useful and accurate information than can be acquired traditionally,which generally requires fast analog voltage comparators. The subjectinnovation(s), based on digital-delay-lines, can be designed usingstandard digital circuits in most any standard-cell library. No analogcircuits are required. Additionally, another issue with analog voltagedetection techniques is that such techniques are very difficult toimplement in the context of high-power microprocessors (e.g., serverchips), due to usage of dual power supply domains and often requirementsfor large decoupling capacitors on both supply domains. Furthermore, theusage of analog techniques makes such circuits inherently more linearthan circuits in connection with the subject digital solutioninnovations disclosed herein.

FIG. 3 illustrates a droop mitigation system 300 in accordance with anembodiment. The system 300 includes a processor 302 and memory 304 forexecuting and storing computer executable components and/or code inaccordance with various implementations disclosed herein. The system 300receives power supply data (e.g., voltage and/or current data)associated with a power supply, and a time-based sensor component 306(e.g., Skitter or CPM) generates numerous bytes of data over respectivecycles that digitally represent voltage values associated with the powersupply. A filtering component 308 digitally conditions and/or processesthe generated bytes of data. An analysis component 310 analyzes the dataand determines slope of the supply voltage through the filtering andemploying counters to gauge how fast the bits of data change over time.If the slope is negative below a pre-determined threshold for apre-determined time period, the system 300 implements one or moredroop-reduction techniques.

It is to be appreciated that in an embodiment, if the slope isnegatively larger than another pre-determined value, droop reduction tomitigate effects of voltage drop is not applied. This is because if thenegative slope is too large (e.g., negatively exceeds the anotherpre-determined value), the large negative slope may be due tohigh-frequency noise and accordingly droop mitigation techniques are notwarranted.

In yet another implementation, the counter starts when voltage crosses afirst threshold, then stops when it crosses another lower threshold. Ifthe counter value is less than a pre-determined value, mitigationtechnique is triggered. However, if the counter value is less thananother smaller pre-determined value, mitigation techniques are notinitiated.

It should be appreciated that the threshold to apply droop mitigationtechnique is not just a fixed-value, but also depends on some previoushistory of the supply voltage. If the supply voltage is at a particularlevel for a long period of time, the pre-determined value can beincreased or decreased in connection with improving efficiency of droopmitigation implementation.

FIG. 4 illustrates an alternative embodiment of the droop mitigationsystem 300 where the analyzer component 310 includes a machine learningcomponent 402 that facilitates inferring, determining or predictingoccurrence of droop at the power supply. In order to provide for or aidin the numerous inferences described herein (e.g. inferring, determiningor predicting droop), components described herein can examine theentirety or a subset of voltage and/or current data to which it isgranted access and can provide for reasoning about or infer states ofthe system, environment, etc. from a set of observations as captured viaevents and/or data. Inference can be employed to identify a specificcontext or action, or can generate a probability distribution overstates, for example. The inference can be probabilistic—that is, thecomputation of a probability distribution over states of interest basedon a consideration of data and events. Inference can also refer totechniques employed for composing higher-level events from a set ofevents and/or data.

Such inference can result in the construction of new events or actionsfrom a set of observed events and/or stored event data, whether or notthe events are correlated in close temporal proximity, and whether theevents and data come from one or several event and data sources. Variousclassification (explicitly and/or implicitly trained) schemes and/orsystems (e.g., support vector machines, neural networks, expert systems,Bayesian belief networks, fuzzy logic, data fusion engines, etc.) can beemployed in connection with performing automatic and/or inferred actionin connection with the claimed subject matter.

A classifier can map an input attribute vector, x=(x1, x2, x3, x4, xn),to a confidence that the input belongs to a class, as byf(x)=confidence(class). Such classification can employ a probabilisticand/or statistical-based analysis (e.g., factoring into the analysisutilities and costs) to prognose or infer an action that a user desiresto be automatically performed. A support vector machine (SVM) is anexample of a classifier that can be employed. The SVM operates byfinding a hyper-surface in the space of possible inputs, where thehyper-surface attempts to split the triggering criteria from thenon-triggering events. Intuitively, this makes the classificationcorrect for testing data that is near, but not identical to trainingdata. Other directed and undirected model classification approachesinclude, e.g., naïve Bayes, Bayesian networks, decision trees, neuralnetworks, fuzzy logic models, and probabilistic classification modelsproviding different patterns of independence can be employed.Classification as used herein also is inclusive of statisticalregression that is utilized to develop models of priority.

Accordingly, based on respective threshold values crossed or notcrossed, historical data as well as contextual data the system 300 canemploy artificial intelligence in connection with a probabilistic-basedanalysis to infer, determine or predict droop. Moreover, a utility-basedanalysis can be employed where the cost of making an incorrectinference, determination or prediction can be weighed against thebenefit of making a correct inference, determination or prediction.

FIG. 5 illustrates a voltage and slope analysis in connection with animplementation. A slope sensor employed in connection with thisembodiment comprises two or more threshold sensors, combined with amethod of calculating a time difference between a time that a firstthreshold (V₁) is crossed and another threshold (V₂) is crossed. Thus,not only is slope dV/dt measured, but rather slope is determined betweentwo specific and known voltages (e.g., V₁ and V₂) or optionallyapproximated values. Starting with just two voltage thresholds V₁ andV₂, where V₁>V₂. When using these two voltage to calculate slope, it isknown that the power supply voltage crossed voltage threshold V₁ at timet₁, and then crossed another voltage threshold V₂ at a later time t₂.Thus, both threshold voltages (V₁, V₂), and both threshold crossingtimes, (t₁ and t₂) are known or approximated, allowing for calculationof a specific negative slope (V₂−V₁)/(t₂−t₁). The calculated slope canbe employed in connection with deciding droop mitigation actions. Theforegoing provides more than a dV/dt value but also knowledge ofspecific voltage thresholds (e.g., V₁ and V₂) that were crossed. Atraditional slope sensor might provide dV/dt, but not inform regardingactual voltages which is much less useful, e.g., in connection withidentification of false positive(s) or occurrence of high frequencynoise.

Still referring to FIG. 5, in another implementation multiple voltagethresholds can be employed, e.g., to provide greater certainty regardingdroop prediction or determination. Instead of applying droop mitigationif (V₂−V₁)/(t₂−t₁) exceeds a particular threshold, it is applied onlywhen Slope(V₁, V₂)<A and Slope(V₃, V₄)<B, where A and B are twoconstants (mV/ns).

It is to be appreciated that the negative voltage slope for powersupplie(s) can be calculated through multiple sets of points. Moreparticularly, a number of different points (Vi,Vj) can be employed, andslope respectively calculated between each start and end of pair.Essentially, counts are made as to how many cycles are required totraverse from crossing Vi (in a negative sense, e.g., a falling supplyvoltage) to crossing Vj (same as prior, negative crossing). Then, these#of cycles are compared to a potentially different threshold. Stillreferring to FIG. 5, constraints can be set such as in a non-limitingexample, a constraint of “undesirable” if (a) number of cycles for(V1,V2)<20 or (b) number of cycles for (V3,V4)<32, etc. Furthermore, itis to be appreciated that the specific order presented in FIG. 5 ismerely one particular non-limiting example, and in other exampleimplementations slopes between V1 and V3, and between V1 and V4, andbetween V2 and V4, etc. can be respectively calculated, and differentthresholds employed for each.

FIG. 6 illustrates a flow diagram 600 in accordance with animplementation. At 602, slope of power supply voltage is digitallydetermined at known voltage values or approximated values. At 604, adetermination is made regarding whether the slope negatively exceeds apredetermined value. If no, the process continues monitoring slope at602. If yes, at 606 droop reduction techniques are implemented tomitigate effects of voltage drop.

FIG. 7 illustrates a flow diagram 700 in accordance with anotherimplementation. At 702, slope of power supply voltage is digitallydetermined at known voltage values (V₁ and V₂) or approximated values.At 704, a determination is made regarding whether the slope negativelyexceeds a first predetermined value. If no, the process continuesmonitoring slope at 602. If yes, at 706 a determination is maderegarding whether the slope negatively exceeds a second predeterminedvalue. If yes, the process continues monitoring slope at 702 since thenegative slope is deemed too large (e.g., exceeds the secondpre-determined value), and the large negative slope may be due tohigh-frequency noise and accordingly droop mitigation techniques are notwarranted. If no at 708, droop reduction techniques are implemented tomitigate effects of voltage drop.

FIG. 8 illustrates a flow diagram 800 in accordance with anotherimplementation. At 802, slope of power supply voltage is digitallydetermined at known voltage values (V₁ and V₂) or approximated values.At 804, a determination is made regarding whether the slope negativelyexceeds a first predetermined threshold value. If no, the processcontinues monitoring slope at 802. If yes, at 806 a second slope valueof the power supply voltage is digitally determined at known voltagevalues (V₃ and V₄) or approximated values. At 808, a determination ismade regarding whether the second slope negatively exceeds a secondpredetermined threshold value. If no, the process continues monitoringslope at 802. If yes at 810, droop reduction techniques are implementedto mitigate effects of voltage drop. It is to be appreciated thatoptionally the second pre-determined value can be the same at the firstpre-determined threshold value.

FIG. 9 illustrates a flow diagram 900 in accordance with yet anotherimplementation, where slope calculations can be iterated at N desiredintervals wherein N is an integer. At 902, a value for N is set, this isthe value for number of iterations of slope calculations to be performedin connection with a trending negative slope for power supply voltage.At 904, a determination is made if slope of the power supply at knownvoltage values (V_(N1), V_(N2)) or approximated values is below apredetermined negative threshold value. If no, the process repeats at904. If yes, a counter is incremented at 906. At 908, a determination ismade if the counter value (K) has reached the value of N. If no, theprocess repeats at 904. If yes, the desired number of slope calculationiterations has reached the desired value N and then at 910 droopreduction techniques are implemented to mitigate effects of voltagedrop.

FIG. 10 illustrates an implementation where a plurality of processorcores 1000 each comprise respective droop mitigation systems 300 thatrespectively implement droop mitigation. This implementation providesfor a combination of both local core and non-local core (e.g.,neighboring core(s)) voltage sensing and digital/analog process ofsensed values. A decision to apply droop reduction techniques can dependon value and slope of local core supply voltage as well as neighboringcore(s)′ supply voltage information and respective core decision(s) toapply droop reduction techniques. In other words, application of droopmitigation can be a function of respective independent core decisionmaking as well as collective decision making by two or more cores. It isto be appreciated that implementations are not restricted to utilizingdata from just neighboring cores but rather certain implementations canutilize information from any subset of cores of a set of cores.

In an embodiment, slope at known voltage values or approximated valuesis monitored at a power supply of a local core 1002, and slope ismonitored at known voltage values or approximated values for a powersupply of a neighboring core 1004. If the slope at the local core 1002supply voltage exceeds a pre-determined value, droop reduction isapplied to the local core 1002 to mitigate effects of voltage drop; andthe local core 1002 transmits at least one of: its voltage value, slopeinformation or decision to apply droop reduction to the neighboring core1004. The neighboring core 1004 utilizes the information received fromcore 1002 in connection with analyzing its own voltage slope analysis inconnection with applying droop reduction to itself. The data receivedfrom core 1002 facilitates core 1004 in decision making e.g., avoidingfalse positives regarding voltage droop occurrence.

In another implementation, the neighboring core 1004 can utilize theinformation received from core 1002 to relax a condition to apply droopreduction, or tighten a condition to apply droop reduction.

In another implementation, droop reduction at the neighboring core 1004is applied if the supply voltage at the neighboring core 1004 is below ahigher threshold than an original set value.

In yet another implementation, droop reduction at the neighboring core1004 is applied if a time taken for its supply voltage to cross twovoltage levels is less than a larger pre-determined threshold.

It is to be appreciated that the detection should not be limited to justthreshold and/or slope detection. The idea is not to treat each core asan independent unit but rather to utilize information from other coresto assist in droop mitigation decision making of its own core to eitherreduce response time or number of false positives.

Furthermore, as noted above, the implementations are not limited to justa neighboring core but instead are applicable to a subset or set ofremote cores (e.g., through either direct connection or through arelay-like network, where a core passes its neighboring core informationto other remote cores).

It is to be appreciated that in a particular implementation not everycore of a set of cores shares information, and that a subset of corescan share voltage related information while another subset does not.

A distributed decision-making framework as described above employingcore to core communications as compared to a centralized frameworkprovides for reduced decision-making in connection with application ofdroop mitigation as well as rapid, targeted droop mitigation on a coreby core basis while leveraging knowledge of surrounding cores.

FIG. 11 illustrates a flow diagram 1100 in accordance with yet anotherimplementation, where slope calculations can be iterated at N desiredintervals wherein N is an integer. At 1102, a value for N is set, thisis the value for number of iterations of slope calculations to bedetermined in connection with a trending negative slope for power supplyvoltage. At 1104, a determination is made if slope of the power supplyat known voltage values (V_(N1), V_(N2)) or approximated values is belowa predetermined negative threshold value for a local core. If no, theprocess repeats at 1104. If yes, a counter is incremented at 1106. At1108, a determination is made if the counter value (K) has reached thevalue of N. If no, the process repeats at 1104. If yes, the desirednumber of slope calculation iterations has reached the desired value Nthen at 1110 droop reduction techniques are implemented to mitigateeffects of voltage drop. At 1112, voltage related information pertainingto the local core is transmitted to one or more cores of a set of cores.

FIG. 12 illustrates a flow diagram 1200 in accordance with yet anotherimplementation, where slope calculations can be iterated at N desiredintervals wherein N is an integer. At 1202, a value for N is set, thisis the value for number of iterations of slope calculations to bedetermined in connection with a trending negative slope for power supplyvoltage. At 1204, a determination is made if slope of the power supplyat known voltage values (V_(N1), V_(N2)) or approximated values is belowa predetermined negative threshold value. If no, the process repeats at1204. If yes, at 1206 voltage related information received from anothercore is analyzed and constraints relating to application of droopmitigation for the subject core are relaxed, tightened or left unchangedas a function of the analysis. At 1208, a counter is incremented. At1210, a determination is made if the counter value (K) has reached thevalue of N. If no, the process repeats at 1204. If yes, the desirednumber of slope calculation iterations has reached the desired value Nthen at 1212 droop reduction techniques are implemented to mitigateeffects of voltage drop. At 1214, voltage related information pertainingto the subject core is shared with one or more cores of a set of cores.

Further to FIG. 4, the machine learning component(s) 402 of one or moreDMSs 300 of respective cores 1000 can learn voltage related datareceived from one or more other cores and employ probabilistic-basedanalyses to infer or determine probability of voltage droop occurrence.As discussed supra, a utility-based analysis can be performed to takedroop mitigation action factoring the benefit of taking correct actionversus the cost of taking incorrect action. Utilization of voltagerelated information from one or more other cores can greatly increaseconfidence scores associated with voltage droop prediction. Furthermore,pre-emptive remediation measures can be taken at a single core in orderto avoid a multi-core voltage droop avalanche from occurring.

In order to provide a context for the various aspects of the disclosedsubject matter, FIG. 13 as well as the following discussion are intendedto provide a general description of a suitable environment in which thevarious aspects of the disclosed subject matter can be implemented. FIG.13 illustrates a block diagram of an example, non-limiting operatingenvironment in which one or more embodiments described herein can befacilitated. Repetitive description of like elements employed in otherembodiments described herein is omitted for sake of brevity.

With reference to FIG. 13, a suitable operating environment 1300 forimplementing various aspects of this disclosure can also include acomputer 1312. The computer 1312 can also include a processing unit1314, a system memory 1316, and a system bus 1318. The system bus 1318couples system components including, but not limited to, the systemmemory 1316 to the processing unit 1314. The processing unit 1314 can beany of various available processors. Dual microprocessors and othermultiprocessor architectures also can be employed as the processing unit1314. The system bus 1318 can be any of several types of busstructure(s) including the memory bus or memory controller, a peripheralbus or external bus, and/or a local bus using any variety of availablebus architectures including, but not limited to, Industrial StandardArchitecture (ISA), Micro-Channel Architecture (MSA), Extended ISA(EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB),Peripheral Component Interconnect (PCI), Card Bus, Universal Serial Bus(USB), Advanced Graphics Port (AGP), Firewire (IEEE 1394), and SmallComputer Systems Interface (SCSI).

The system memory 1316 can also include volatile memory 1320 andnonvolatile memory 1322. The basic input/output system (BIOS),containing the basic routines to transfer information between elementswithin the computer 1312, such as during start-up, is stored innonvolatile memory 1322. Computer 1312 can also includeremovable/non-removable, volatile/non-volatile computer storage media.FIG. 13 illustrates, for example, a disk storage 1324. Disk storage 1324can also include, but is not limited to, devices like a magnetic diskdrive, floppy disk drive, tape drive, Jaz drive, Zip drive, LS-100drive, flash memory card, or memory stick. The disk storage 1324 alsocan include storage media separately or in combination with otherstorage media. To facilitate connection of the disk storage 1324 to thesystem bus 1318, a removable or non-removable interface is typicallyused, such as interface 1326. FIG. 13 also depicts software that acts asan intermediary between users and the basic computer resources describedin the suitable operating environment 1300. Such software can alsoinclude, for example, an operating system 1328. Operating system 1328,which can be stored on disk storage 1324, acts to control and allocateresources of the computer 1312.

System applications 1330 take advantage of the management of resourcesby operating system 1328 through program modules 1332 and program data1334, e.g., stored either in system memory 1316 or on disk storage 1324.It is to be appreciated that this disclosure can be implemented withvarious operating systems or combinations of operating systems. A userenters commands or information into the computer 1312 through inputdevice(s) 1336. Input devices 1336 include, but are not limited to, apointing device such as a mouse, trackball, stylus, touch pad, keyboard,microphone, joystick, game pad, satellite dish, scanner, TV tuner card,digital camera, digital video camera, web camera, and the like. Theseand other input devices connect to the processing unit 1314 through thesystem bus 1318 via interface port(s) 1338. Interface port(s) 1338include, for example, a serial port, a parallel port, a game port, and auniversal serial bus (USB). Output device(s) 1340 use some of the sametype of ports as input device(s) 1336. Thus, for example, a USB port canbe used to provide input to computer 1312, and to output informationfrom computer 1312 to an output device 1340. Output adapter 1342 isprovided to illustrate that there are some output devices 1340 likemonitors, speakers, and printers, among other output devices 1340, whichrequire special adapters. The output adapters 1342 include, by way ofillustration and not limitation, video and sound cards that provide ameans of connection between the output device 1340 and the system bus1318. It should be noted that other devices and/or systems of devicesprovide both input and output capabilities such as remote computer(s)1344.

Computer 1312 can operate in a networked environment using logicalconnections to one or more remote computers, such as remote computer(s)1344. The remote computer(s) 1344 can be a computer, a server, a router,a network PC, a workstation, a microprocessor based appliance, a peerdevice or other common network node and the like, and typically can alsoinclude many or all of the elements described relative to computer 1312.For purposes of brevity, only a memory storage device 1346 isillustrated with remote computer(s) 1344. Remote computer(s) 1344 islogically connected to computer 1312 through a network interface 1348and then physically connected via communication connection 1350. Networkinterface 1348 encompasses wire and/or wireless communication networkssuch as local-area networks (LAN), wide-area networks (WAN), cellularnetworks, etc. LAN technologies include Fiber Distributed Data Interface(FDDI), Copper Distributed Data Interface (CDDI), Ethernet, Token Ringand the like. WAN technologies include, but are not limited to,point-to-point links, circuit switching networks like IntegratedServices Digital Networks (ISDN) and variations thereon, packetswitching networks, and Digital Subscriber Lines (DSL). Communicationconnection(s) 1350 refers to the hardware/software employed to connectthe network interface 1348 to the system bus 1318. While communicationconnection 1350 is shown for illustrative clarity inside computer 1312,it can also be external to computer 1312. The hardware/software forconnection to the network interface 1348 can also include, for exemplarypurposes only, internal and external technologies such as, modemsincluding regular telephone grade modems, cable modems and DSL modems,ISDN adapters, and Ethernet cards.

The present invention may be a system, a method, an apparatus and/or acomputer program product at any possible technical detail level ofintegration. The computer program product can include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention. The computer readable storage medium can be atangible device that can retain and store instructions for use by aninstruction execution device. The computer readable storage medium canbe, for example, but is not limited to, an electronic storage device, amagnetic storage device, an optical storage device, an electromagneticstorage device, a semiconductor storage device, or any suitablecombination of the foregoing. A non-exhaustive list of more specificexamples of the computer readable storage medium can also include thefollowing: a portable computer diskette, a hard disk, a random accessmemory (RAM), a read-only memory (ROM), an erasable programmableread-only memory (EPROM or Flash memory), a static random access memory(SRAM), a portable compact disc read-only memory (CD-ROM), a digitalversatile disk (DVD), a memory stick, a floppy disk, a mechanicallyencoded device such as punch-cards or raised structures in a groovehaving instructions recorded thereon, and any suitable combination ofthe foregoing. A computer readable storage medium, as used herein, isnot to be construed as being transitory signals per se, such as radiowaves or other freely propagating electromagnetic waves, electromagneticwaves propagating through a waveguide or other transmission media (e.g.,light pulses passing through a fiber-optic cable), or electrical signalstransmitted through a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network can comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device. Computer readable programinstructions for carrying out operations of the present invention can beassembler instructions, instruction-set-architecture (ISA) instructions,machine instructions, machine dependent instructions, microcode,firmware instructions, state-setting data, configuration data forintegrated circuitry, or either source code or object code written inany combination of one or more programming languages, including anobject oriented programming language such as Smalltalk, C++, or thelike, and procedural programming languages, such as the “C” programminglanguage or similar programming languages. The computer readable programinstructions can execute entirely on the user's computer, partly on theuser's computer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer or entirely on the remotecomputer or server. In the latter scenario, the remote computer can beconnected to the user's computer through any type of network, includinga local area network (LAN) or a wide area network (WAN), or theconnection can be made to an external computer (for example, through theInternet using an Internet Service Provider). In some embodiments,electronic circuitry including, for example, programmable logiccircuitry, field-programmable gate arrays (FPGA), or programmable logicarrays (PLA) can execute the computer readable program instructions byutilizing state information of the computer readable programinstructions to personalize the electronic circuitry, in order toperform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions. These computer readable programinstructions can be provided to a processor of a general purposecomputer, special purpose computer, or other programmable dataprocessing apparatus to produce a machine, such that the instructions,which execute via the processor of the computer or other programmabledata processing apparatus, create means for implementing thefunctions/acts specified in the flowchart and/or block diagram block orblocks. These computer readable program instructions can also be storedin a computer readable storage medium that can direct a computer, aprogrammable data processing apparatus, and/or other devices to functionin a particular manner, such that the computer readable storage mediumhaving instructions stored therein comprises an article of manufactureincluding instructions which implement aspects of the function/actspecified in the flowchart and/or block diagram block or blocks. Thecomputer readable program instructions can also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational acts to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams can represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks can occur out of theorder noted in the Figures. For example, two blocks shown in successioncan, in fact, be executed substantially concurrently, or the blocks cansometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

While the subject matter has been described above in the general contextof computer-executable instructions of a computer program product thatruns on a computer and/or computers, those skilled in the art willrecognize that this disclosure also can or can be implemented incombination with other program modules. Generally, program modulesinclude routines, programs, components, data structures, etc. thatperform particular tasks and/or implement particular abstract datatypes. Moreover, those skilled in the art will appreciate that theinventive computer-implemented methods can be practiced with othercomputer system configurations, including single-processor ormultiprocessor computer systems, mini-computing devices, mainframecomputers, as well as computers, hand-held computing devices (e.g., PDA,phone), microprocessor-based or programmable consumer or industrialelectronics, and the like. The illustrated aspects can also be practicedin distributed computing environments in which tasks are performed byremote processing devices that are linked through a communicationsnetwork. However, some, if not all aspects of this disclosure can bepracticed on stand-alone computers. In a distributed computingenvironment, program modules can be located in both local and remotememory storage devices.

As used in this application, the terms “component,” “system,”“platform,” “interface,” and the like, can refer to and/or can include acomputer-related entity or an entity related to an operational machinewith one or more specific functionalities. The entities disclosed hereincan be either hardware, a combination of hardware and software,software, or software in execution. For example, a component can be, butis not limited to being, a process running on a processor, a processor,an object, an executable, a thread of execution, a program, and/or acomputer. By way of illustration, both an application running on aserver and the server can be a component. One or more components canreside within a process and/or thread of execution and a component canbe localized on one computer and/or distributed between two or morecomputers. In another example, respective components can execute fromvarious computer readable media having various data structures storedthereon. The components can communicate via local and/or remoteprocesses such as in accordance with a signal having one or more datapackets (e.g., data from one component interacting with anothercomponent in a local system, distributed system, and/or across a networksuch as the Internet with other systems via the signal). As anotherexample, a component can be an apparatus with specific functionalityprovided by mechanical parts operated by electric or electroniccircuitry, which is operated by a software or firmware applicationexecuted by a processor. In such a case, the processor can be internalor external to the apparatus and can execute at least a part of thesoftware or firmware application. As yet another example, a componentcan be an apparatus that provides specific functionality throughelectronic components without mechanical parts, wherein the electroniccomponents can include a processor or other means to execute software orfirmware that confers at least in part the functionality of theelectronic components. In an aspect, a component can emulate anelectronic component via a virtual machine, e.g., within a cloudcomputing system.

In addition, the term “or” is intended to mean an inclusive “or” ratherthan an exclusive “or.” That is, unless specified otherwise, or clearfrom context, “X employs A or B” is intended to mean any of the naturalinclusive permutations. That is, if X employs A; X employs B; or Xemploys both A and B, then “X employs A or B” is satisfied under any ofthe foregoing instances. Moreover, articles “a” and “an” as used in thesubject specification and annexed drawings should generally be construedto mean “one or more” unless specified otherwise or clear from contextto be directed to a singular form. As used herein, the terms “example”and/or “exemplary” are utilized to mean serving as an example, instance,or illustration. For the avoidance of doubt, the subject matterdisclosed herein is not limited by such examples. In addition, anyaspect or design described herein as an “example” and/or “exemplary” isnot necessarily to be construed as preferred or advantageous over otheraspects or designs, nor is it meant to preclude equivalent exemplarystructures and techniques known to those of ordinary skill in the art.

As it is employed in the subject specification, the term “processor” canrefer to substantially any computing processing unit or devicecomprising, but not limited to, single-core processors;single-processors with software multithread execution capability;multi-core processors; multi-core processors with software multithreadexecution capability; multi-core processors with hardware multithreadtechnology; parallel platforms; and parallel platforms with distributedshared memory. Additionally, a processor can refer to an integratedcircuit, an application specific integrated circuit (ASIC), a digitalsignal processor (DSP), a field programmable gate array (FPGA), aprogrammable logic controller (PLC), a complex programmable logic device(CPLD), a discrete gate or transistor logic, discrete hardwarecomponents, or any combination thereof designed to perform the functionsdescribed herein. Further, processors can exploit nano-scalearchitectures such as, but not limited to, molecular and quantum-dotbased transistors, switches and gates, in order to optimize space usageor enhance performance of user equipment. A processor can also beimplemented as a combination of computing processing units. In thisdisclosure, terms such as “store,” “storage,” “data store,” “datastorage,” “database,” and substantially any other information storagecomponent relevant to operation and functionality of a component areutilized to refer to “memory components,” entities embodied in a“memory,” or components comprising a memory. It is to be appreciatedthat memory and/or memory components described herein can be eithervolatile memory or nonvolatile memory, or can include both volatile andnonvolatile memory. By way of illustration, and not limitation,nonvolatile memory can include read only memory (ROM), programmable ROM(PROM), electrically programmable ROM (EPROM), electrically erasable ROM(EEPROM), flash memory, or nonvolatile random access memory (RAM) (e.g.,ferroelectric RAM (FeRAM). Volatile memory can include RAM, which canact as external cache memory, for example. By way of illustration andnot limitation, RAM is available in many forms such as synchronous RAM(SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rateSDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM),direct Rambus RAM (DRRAM), direct Rambus dynamic RAM (DRDRAM), andRambus dynamic RAM (RDRAM). Additionally, the disclosed memorycomponents of systems or computer-implemented methods herein areintended to include, without being limited to including, these and anyother suitable types of memory.

What has been described above include mere examples of systems andcomputer-implemented methods. It is, of course, not possible to describeevery conceivable combination of components or computer-implementedmethods for purposes of describing this disclosure, but one of ordinaryskill in the art can recognize that many further combinations andpermutations of this disclosure are possible. Furthermore, to the extentthat the terms “includes,” “has,” “possesses,” and the like are used inthe detailed description, claims, appendices and drawings such terms areintended to be inclusive in a manner similar to the term “comprising” as“comprising” is interpreted when employed as a transitional word in aclaim.

The descriptions of the various embodiments have been presented forpurposes of illustration, but are not intended to be exhaustive orlimited to the embodiments disclosed. Many modifications and variationswill be apparent to those of ordinary skill in the art without departingfrom the scope and spirit of the described embodiments. The terminologyused herein was chosen to best explain the principles of theembodiments, the practical application or technical improvement overtechnologies found in the marketplace, or to enable others of ordinaryskill in the art to understand the embodiments disclosed herein.

What is claimed is:
 1. A computer-implemented method for reducingon-chip power-supply noise, comprising: using a time-based voltagesensor to digitally determine slope of a supply voltage at known orapproximated voltage values, wherein the digitally determining slopecomprises: employing a digital-delay-line in the time-based voltagesensor that generates a a first supply voltage value at a first time anda second supply voltage value at a second time; and estimating slope ofthe supply voltage by dividing a difference between the first and secondsupply voltage values by an elapsed time interval; wherein the employingthe digital-delay-line and employing a counter mitigate circuitlinearity; and if the slope negatively exceeds a first pre-determinedvalue, apply droop reduction to mitigate effects of voltage drop.
 2. Themethod of claim 1, wherein if the slope negatively exceeds a secondpre-determined value then forego droop reduction.
 3. The method of claim2, wherein the second pre-determined value is indicative ofhigh-frequency noise occurrence.
 4. The method of claim 1, furthercomprising employing the counter to tracks a number of interim cyclesbetween the first time and the second time to determine the elapsed timeinterval.
 5. The method of claim 1, comprising analyzing the first andsecond sets of voltage values with digital signal processing.
 6. Themethod of claim 1, wherein if the monitored slope is calculated asnegative below the predetermined threshold identify a droop condition onthe supply voltage.
 7. The method of claim 5, wherein a filter isapplied to an output of the time-based voltage sensor.
 8. The method ofclaim 6, wherein the droop reduction is applied if the slope remainsnegative for a predetermined time period.
 9. The method of claim 1,wherein if the supply voltage is at a particular level for a setduration of time, the pre-determined value is increased or decreased.10. The method of claim 9, wherein the change to the pre-determinedvalue is based at least in part on historical values of the supplyvoltage.
 11. A voltage droop mitigation system, comprising: a processorthat executes computer executable components stored in a memory; atime-based voltage sensor component that generates digital datarepresenting voltage values associated with a power supply; adigital-delay-line in the time-based voltage sensor component thatgenerates over a first supply voltage value at a first time and a secondsupply voltage value at a second time; a counter that tracks a number ofinterim cycles between the first time and the second time to determinean elapsed time interval; a filtering component that digitallyconditions generated digital data; and an analysis component thatanalyzes the conditioned data and digitally determines slope of thepower supply voltage by dividing a difference between the first andsecond supply voltage values by the elapsed time interval, wherein thedigitally determining slope mitigates circuit linearity; and if theslope is negative and exceeds a first pre-determined value for apre-determined time period, the system implements one or more voltagedroop-reduction techniques.
 12. The system of claim 11, wherein if theslope negatively exceeds a second pre-determined value thenimplementation of the one or more voltage droop-reduction techniques isabandoned.
 13. The system of claim 12, wherein the second pre-determinedvalue is indicative of high-frequency noise occurrence.
 14. The systemof claim 11, wherein if the power supply voltage is at a particularlevel for a set duration of time, the first pre-determined value isincreased or decreased by the analysis component.
 15. The system ofclaim 14, wherein the analysis component changes the pre-determinedvalue based at least in part on historical values of the supply voltage.16. A computer program product that reduces on-chip power-supply noise,the computer program product comprising a non-transitory computerreadable storage medium having program instructions embodied therewith,the program instructions executable by a processing component to causethe processing component to: digitally determine, by a time-basedvoltage sensor, slope of a supply voltage at known or approximatedvoltage values, wherein the digitally determining slope comprises:employing a digital-delay-line in the time-based voltage sensor thatgenerates over one or more cycles a first supply voltage value at afirst time and a second supply voltage value at a second time; andestimating the slope of the supply voltage by dividing a differencebetween the first and second supply voltage values by an elapsed timeinterval; wherein the employing the digital-delay-line and the employingthe counter mitigate circuit linearity; and if the slope negativelyexceeds a first pre-determined value, apply droop reduction to mitigateeffects of voltage drop.
 17. The computer program product of claim 16,wherein if the slope negatively exceeds a second pre-determined valuethen forego droop reduction.
 18. The computer program product of claim16, wherein if the monitored slope is calculated as negative below thepredetermined threshold identify a droop condition on the supplyvoltage.
 19. The computer program product of claim 16, wherein a filteris applied to an output of the time-based voltage sensor.
 20. Thecomputer program product of claim 16, wherein if the supply voltage isat a particular level for a set duration of time, the pre-determinedvalue is increased or decreased; and wherein the change to thepre-determined value is based at least in part on historical values ofthe supply voltage.